Method for touch contact tracking

ABSTRACT

A method for touch contact tracking is provided. A parameter is adjusted according to the number of external objects approaching or touching a touch sensor. Besides, the detected location corresponding to each external object is also detected. The parameter is used to generate a reported location corresponding to each external object according to the detected location separately, whereby the larger the number of external objects is, the closer the distance between the reported location and the detected location is.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/702,301, filed on Sep. 18, 2012, which are herein incorporated by reference for all intents and purposes.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method for touch contact tracking, and more particularly, to a method for prediction-based touch contact tracking for touch screens.

2. Description of the Prior Art

When an external conductive object touches or approaches a touch screen, the touch screen will detect the location of the external conductive object. Since the touch screen may be affected by noise interference, the detected location of the external conductive object may have certain offset. Referring to FIG. 1, an input track Itrack is the track of an external conductive object moving on a touch screen, and an output track Otrack is the track detected by the touch screen. The output track Otrack may have the jitter phenomenon due to noise interference, especially when the external conductive object is stationary, the detected location may jitter around the external conductive object. The larger the noise, the greater the jittering.

From the above it is clear that prior art still has shortcomings. In order to solve these problems, efforts have long been made in vain, while ordinary products and methods offering no appropriate structures and methods. Thus, there is a need in the industry for a novel technique that addresses these problems.

SUMMARY OF THE INVENTION

Due to noise interference, the locations generated by the signals of a touch screen may have jitters. Thus, a coefficient is employed to carry out a filtering process, whereby a new reported location is shifted backwards towards a latest reported location based on a detected location to reduce or filter the jittering of the reported locations caused by noise in the signals of the touch sensor. When the number of external objects increases, the time spent for detecting the detected location of each external object also increases, so the coefficient is adjusted such that the more external objects that are detected, the closer a reported location is to a detected location.

The above objective of the present invention can be achieved by the following technical scheme. A method for touch contact tracking in accordance with the present invention may include: continuously detecting the number of external objects touching or approaching a touch screen and a detected location corresponding to each external object; continuously determining a coefficient less than one based on the number, wherein the larger the number of the external objects, the smaller the coefficient; and continuously generating a reported location based on the coefficient and the respective detected location of each external object, wherein the smaller the coefficient, the closer the reported location is to the detected location.

The above objective of the present invention can be further achieved by the following technical scheme. A method for touch contact tracking in accordance with the present invention may include: continuously detecting the number of external objects touching or approaching a touch screen and a detected location corresponding to each external object; continuously determining a coefficient less than one based on the number, wherein the larger the number of the external objects, the smaller the coefficient; and continuously generating a virtual detected location between a latest detected location corresponding to the same external object and a previously detected location corresponding to the same external object; continuously generating a respective reported location based on the coefficient and the detected location of each external object, wherein the smaller the coefficient, the closer the reported location is to the detected location; and continuously generating a virtual reported location based on the coefficient and the respective virtual detected location of each external object, wherein the smaller the coefficient, the closer the virtual reported location is to the virtual detected location.

With the above technical means, the present invention includes at least the following advantages and benefits: jittering is addressed by filtering processes, and the degree of filtering is adjusted according to the number of external objects detected, so that when jittering is prominent, jittering can be reduced. On the other hand, when jittering is not prominent, the distance between a reported location and a detected location can be reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating reporting points for tracking of the prior art;

FIGS. 2 and 9 are schematic diagrams illustrating reporting points for tracking that employs a filtering algorithm;

FIG. 3 is a schematic diagram illustrating reporting points for prediction-based touch contact tracking of the present invention;

FIG. 4 is a schematic diagram illustrating reporting points for prediction-based touch contact tracking of the present invention with the addition of virtual reported locations;

FIGS. 5 and 6 are flowcharts illustrating predication-based touch contact tracking methods in accordance with a first embodiment of the present invention;

FIGS. 7 and 8 are flowcharts illustrating predication-based touch contact tracking methods in accordance with a second embodiment of the present invention; and

FIGS. 10 and 11 are flowcharts illustrating touch contact tracking methods in accordance with the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Some embodiments of the present invention are described in details below. However, in addition to the descriptions given below, the present invention can be applicable to other embodiments, and the scope of the present invention is not limited by such, rather by the scope of the claims. Moreover, for better understanding and clarity of the description, some components in the drawings may not necessary be drawn to scale, in which some may be exaggerated relative to others, and irrelevant parts are omitted.

In order to overcome the prior-art issues, a filtering process is usually employed to reduce or filter out the jittering problem as mentioned before. Referring to FIG. 2, a new reported location can be determined by performing interpolation between the latest reported location (the last reported location) and the latest detected location (the current detected location) with a certain ratio. For example, the touch screen sequentially detects reported locations I1, I2, . . . , I5 based on an input track Itrack, wherein when I2 is detected, a filtering process is carried out based on the latest reported location (assuming the latest reported location is at I1) and the latest detected location I2 with a certain ratio (e.g. 40%) to generate a new reported location O2. Similarly, when the latest detected location I3 is detected, the filtering process is carried out based on the latest reported location O2 and the latest detected location I3 to generate a new reported location O3. With the same analogy, an output track Otrack can be generated from the continuously generated reported locations. It can be seen from FIG. 2 that the output track Otrack lags the input track Itrack by a considerably large distance.

Therefore, in an embodiment of the present invention, a prediction-based touch contact tracking method is provided to address the issue of linear jittering while shortening the distance between the output and input tracks.

Referring to FIG. 3, a schematic diagram illustrating a first embodiment of the present invention is shown. A touch screen sequentially detects continuous detected locations (e.g. detected locations I1, I2, . . . , I5), and predicts continuous predicted locations (e.g. predicted locations P3, P4 and P5) based on the detected locations. With the predicted locations, a filtering process is carried out based on the latest reported location (the last reported location) and the latest predicted location (the current predicted location) to generate a new reported location. For example, a predicted location can be determined from at least two detected locations. More specifically, the predicted location P3 is determined from the detected locations I1 and I3; the predicted location P4 is determined from the detected locations I2 and I4; and the predicted location P5 is determined from the detected locations I3 and I5. In this example, predicted locations are determined with a uniform velocity. For example, a translational velocity or vector is calculated from a previous detected location and a following detected location that is one, two or more time unit away from the previous detected location. The location after k time units is predicted based on the translational velocity or vector and based on the following detected location, wherein k may be a natural or real number, for example, k may be 1 or 1.5. Then, the filtering process performing linear interpolation is carried out to generate a new reported location.

In other words, the prediction and filtering processes just described may employ a linear Bezier curve. Given points L0 and L1, a linear Bézier curve is a straight line between these two points. This line is given by the following equation: B(t)=(1−t)L0+tL1. When the prediction process is carried out, L0 and L1 are the detected locations (e.g. the detected locations I1 and I3 above), wherein t>1 (e.g. 1.5), and the resulting B(t) is a new predicted location. When the filtering process is carried out, L0 and L1 are the latest reported location and the latest predicted location (e.g. the reported location O2 and the predicted location P3), respectively, wherein coefficient t∈[0,1], and the resulting B(t) is a new reported location.

One with ordinary skill in the art can appreciate that there are other ways of predicting a predicted location based on at least two detected locations and other filtering methods. For example, a quadratic Bézier curve can be used. For example, the path of a quadratic Bézier curve is tracked by B(t) as a function of given points L0, L1 and L2: B(t)=(1−t)²L0+2t(1−t)L1+t²L2. When the prediction process is carried out, L0, L1 and L2 are the detected locations, wherein t>1, and the resulting B(t) is a new predicted location. When the filtering process is carried out, L0 and L1 are the two latest reported locations and L2 is the latest predicted location, wherein coefficient t∈[0,1], and the resulting B(t) is a new reported location.

Comparing FIGS. 2 and 3, since FIG. 3 uses the predicted locations, the output track Otrack follows the input track Itrack more closely, for example, the reported location O5 is closer to the detected location I5 in FIG. 3.

With reference to the first embodiment, in a second embodiment of the present invention, at least one virtual detected location is added between each pair of adjacent detected locations among the detected locations. The detected locations and the virtual detected location form continuous input locations. The virtual detected location can be at the middle of each pair of adjacent detected locations, or generated in accordance to the above Bézier curves. Accordingly, the number of detected locations becoming the input locations can be effectively doubled. One with ordinary skill in the art can appreciate that the number of virtual detected location added between each pair of adjacent detected locations can be one, two or more.

Referring now to FIG. 4, the touch screen sequentially detects continuous detected locations (e.g. detected locations I1, I2, . . . , I5) to generate continuous virtual detected locations (I1-1, I2-1, . . . , I4-1) to form continuous input locations (I1, I1-1, I2, I2-1, . . . , I4, I4-1, I5), and continuous predicted locations (e.g. predicted locations P3, P3-1, P4, P4-1 and P5) are predicted based on the input locations. With the predicted locations, a filtering process is carried out based on the latest reported location (the last reported location) and the latest predicted location (the current predicted location) to generate a new reported location (e.g. reported locations O3, O3-1, O4, O4-1 or O5). In this example, the reported location O2-1 is the reported location immediately before the reported location O3.

The prediction process for predicting a predicted location and the filtering process for generating a reported location have already been described in the first embodiment, so they will not be repeated herein. It can be seen from FIG. 4 that, comparing to FIGS. 1, 2 and 3, the number of reported locations in FIG. 4 is increased, and the output track Otrack appears to be smoother, improving the issue of track jittering as mentioned earlier.

The technical means of the present invention can be applied to most types of the touch screens, for example, resistive, surface acoustic, infrared, optical, surface capacitive, projected capacitive or other types of touch screen that are capable of reporting locations in order to display an output track. Moreover, the present invention can be used to report the output track (or tracks) of one or more external conductive objects.

Referring to FIG. 5, a flowchart illustrating a predication-based touch contact tracking method in accordance with a first embodiment of the present invention is shown. First, as shown in step 510, when an external object touches or approaches a touch screen, a detected location corresponding to the external object is continuously generated from signals received by the touch screen. Next, as shown in step 530, a predicted location is generated continuously based on a most recently generated detected location and at least one previously generated detected location. Then, as shown in step 550, a new reported location is generated continuously based on at least one predicted location including the most recently generated predicted location and at least one reported location including the most recently generated reported location.

Referring to FIG. 6, a flowchart illustrating another predication-based touch contact tracking method in accordance with a first embodiment of the present invention is shown. First, as shown in step 610, when an external object touches or approaches a touch screen, a plurality of continuous detected location corresponding to the external object are generated from signals received by the touch screen. Next, as shown in step 630, a plurality of predicted locations are generated based on the detected locations, wherein each predicted location is generated based on at least two detected locations. Then, as shown in step 650, a plurality of new reported location are generated based on the predicted locations, wherein each reported location is generated based on at least one predicted location and at least one reported location.

In an example of the present invention, a predicted location is generated by multiplying the vector of the two most recently generated detected locations by a predetermined factor greater than 1. In other words, in two detected locations, a new vector is generated by multiplying a vector produced from using the older detected location as the starting point and the newer detected location as the end point by a predetermined factor greater than 1. The predicted location is at the end point of the new vector that is based on the older detected location. In the present invention, generating another location from two locations can be carried out using the example shown above or other methods; the present invention is not limited as such.

In another example of the present invention, a predicted location is generated by multiplying the vector of the two detected locations by a predetermined factor greater than 1, wherein there is at least one detected location between the two detected locations. As such, the two detected locations for generating a predicted location can be adjacent or not adjacent to each other; the present invention is not limited as such.

In contrast to the predicted location being generated by multiplying by a predetermined factor that is greater than 1, a reported location is generated by multiplying by a predetermined factor that is less than 1. For example, a reported location is generated by multiplying the vector of the most recently generated reported location and the most recently generated predicted location by a predetermined factor that is less than 1.

In the example of FIG. 4, in the input locations, input locations I1-1, I2-1, . . . , I4-1 can be regarded as virtual input locations, and in the predicted locations, predicated locations P3-1 and P4-1 can be regarded as virtual predicted locations. Similarly, in the reported locations, reported locations O3-1 and O4-1 can be regarded as virtual reported locations. The virtual reported locations increase the reporting rate, so the line becomes smoother.

Referring to FIG. 7, the method illustrated in FIG. 5 further includes additional steps as follow. As shown in step 520, a virtual detected location is continuously generated based on a most recently generated detected location and an adjacent detected location. Then, as shown in step 540, a virtual predicted location is generated continuously based on a most recently generated virtual detected location and at least one previously generated virtual detected location. Then, as shown in step 560, a new virtual reported location is generated continuously based on at least one virtual predicted location including the most recently generated virtual predicted location and at least one virtual reported location including the most recently generated virtual reported location.

Referring further to FIG. 8, in a best mode of the present invention, the method illustrated in FIG. 6 further includes addition steps as follow. As shown in step 620, a plurality of continuous virtual detected location are generated based on the detected locations, wherein each virtual detected location resides between two adjacent detected locations. Next, as shown in step 640, a plurality of virtual predicted locations are generated based on the virtual detected locations, wherein each virtual predicted location is generated based on at least two virtual detected locations. Then, as shown in step 660, a plurality of new virtual reported location are generated based on the virtual predicted locations, wherein each virtual reported location is generated based on at least one virtual predicted location and at least one virtual reported location.

In an example of the present invention, a virtual predicted location is generated by multiplying the vector of the two most recently generated virtual detected locations by a predetermined factor greater than 1. In another example of the present invention, a virtual reported location is generated by multiplying the vector of the most recently generated virtual reported location and the most recently generated virtual predicted location by a predetermined factor that is less than 1. As such, the two virtual detected locations for generating a virtual predicted location can be adjacent or not adjacent to each other; the present invention is not limited as such.

Moreover, in contrast to the virtual predicted location being generated by multiplying by a predetermined factor that is greater than 1, a virtual reported location is generated by multiplying by a predetermined factor that is less than 1. For example, a virtual predicted location is generated by multiplying the vector of the two virtual detected locations by a predetermined factor that is greater than 1, wherein at least one virtual detected location resides between the two virtual detected locations.

Since a virtual reported location is between reported locations, so the latest (most recently generated) virtual reported location can be regarded as preceding the latest (most recently generated) reported location. Accordingly, the present invention further includes continuously providing a latest virtual reported location and a latest reported location, wherein the latest virtual reported location is provided before the latest reported location.

Furthermore, the predicted locations, the reported locations, the virtual predicted locations and the virtual reported locations mentioned before can be generated by quadratic Bézier curves.

During the detection of a capacitive touch screen, the number of reported locations provided in a unit time is called the reporting rate. The reporting rate can be fixed or variable. For example, in the detection method disclosed in U.S. patent application Ser. No. 12/499,981, the duration of the detection varies with the number of external objects approaching or touching a touch screen, the larger the number of external objects, the longer the detection duration. Even though the detection duration is longer, the number of locations detected is greater, so the overall reporting rate is not necessary lower, but is not fixed.

However, from the perspective of each individual external object, it will take longer to detect a new detected location. Assuming the external object is moving at a uniform speed, the distance between a newly detected location and another location detected immediately before this will be longer. If said coefficient t∈[0,1] is not changed, the reported location will lag the detected location by a considerably amount.

Thus, a touch contact tracking method is proposed by the present invention, wherein the coefficient t is adjusted according to the number of external object detected from the signals of a touch screen, such that when the number of external object detected is larger, the reported locations will be closer to the detected locations. For example, when the number of external objects is small, for example, 1, then a larger coefficient is used, as shown in FIG. 2. As another example, when the number of external objects is greater, for example, 5, then a smaller coefficient is used, as shown in FIG. 9.

Referring now to FIG. 10, a method for touch contact tracking proposed by the present invention is shown. As shown in step 1010, the number of external objects touching or approaching a touch screen and a detected location corresponding to each external object are continuously detected. Since the detected locations of more than one external objects (touching or approaching) may be detected on the touch screen, a corresponding external object to which each new detected location corresponds can be determined based on the history of detected locations of each external object previously detected. In contrast to the new detected location just detected, any previously detected locations corresponding to the same external object belongs to the history of detected locations of the same external object. Next, as show in step 1020, a coefficient less than 1 is continuously determined according to the number, wherein the larger the number of the external objects, the smaller the coefficient. Next, as shown in step 1040, a reported location is continuously generated based on the coefficient and the respective detected location of each external object, wherein the smaller the coefficient, the closer the reported location is to the detected location. In other words, the more external objects there are, the closer the reported locations will be to the detected locations. On the contrary, the fewer the external objects there are, the larger the coefficient, and the further away the reported locations will be from the detected locations.

In an example of the present invention, the reported location of each external object is generated based on the latest reported location and a detected location. For example, reported location=(latest reported location×(1−coefficient)+detected location×coefficient). The reported locations can also be generated by quadratic Bézier curves; the present invention is not limited as such. Moreover, the reported location can also be generated by prediction-based methods such as those described in FIGS. 5 and 7, and will not be repeated herein.

Referring to FIG. 11, another method for touch contact tracking in accordance with a best mode of the present invention is shown. With respect to FIG. 10, the method further includes steps 1030 and 1050. As shown in step 1030, a virtual detected location is continuously generated between the latest detected location corresponding to the same external object and a previously detected location corresponding to the same external object. As described before, a virtual detected location may reside between two adjacent (former and latter) detected locations corresponding to the same external object. Thereafter, as shown in step 1050, a virtual reported location is continuously generated based on the coefficient and the respective virtual detected location of each external object, wherein the smaller the coefficient, the closer the virtual reported location is to the virtual detected location. In other words, the more external objects there are, the closer the virtual reported locations will be to the virtual detected locations. On the contrary, the fewer the external objects there are, the larger the coefficient, and the further away the virtual reported locations will be from the virtual detected locations.

In an example of the present invention, the virtual reported location of each external object is generated based on the latest virtual reported location and a virtual detected location. For example, virtual reported location=(latest virtual reported location×(1−coefficient)+virtual detected location×coefficient). The virtual reported locations can also be generated by quadratic Bézier curves; the present invention is not limited as such. Moreover, the virtual reported location can also be generated by prediction-based methods such as those described in FIGS. 5 and 7, and will not be repeated herein.

Furthermore, the present invention further includes continuously providing a newly generated virtual reported location corresponding to each external object, and continuously providing a newly generated reported location corresponding to each external object, wherein the newly generated virtual reported location corresponding to each external object is provided before the newly generated reported location corresponding to each external object.

With the above methods, jittering is addressed, and the coefficient is adjusted according to the number of external objects detected, so that when jittering is prominent, jittering can be reduced. On the other hand, when jittering is not prominent, the distance between a reported location and a detected location can be reduced.

The above embodiments are only used to illustrate the principles of the present invention, and they should not be construed as to limit the present invention in any way. The above embodiments can be modified by those with ordinary skill in the art without departing from the scope of the present invention as defined in the following appended claims. 

What is claimed is:
 1. A method for touch contact tracking, comprising: continuously detecting the number of external objects touching or approaching a touch screen and a detected location corresponding to each external object; continuously determining a coefficient less than one according to the number, wherein the larger the number of the external objects, the smaller the coefficient; and continuously generating a reported location based on the coefficient and the respective detected location of each external object, wherein the smaller the coefficient, the closer the reported location is to the detected location.
 2. The touch contact tracking method of claim 1, wherein the reported location of each external object is generated based on a latest reported location and the detected location.
 3. The touch contact tracking method of claim 2, wherein reported location=(latest reported location×(1−coefficient)+detected location×coefficient)
 4. A method for touch contact tracking, comprising: continuously detecting the number of external objects touching or approaching a touch screen and a detected location corresponding to each external object; continuously determining a coefficient less than one according to the number, wherein the larger the number of the external objects, the smaller the coefficient; and continuously generating a virtual detected location between a latest detected location corresponding to the same external object and a previously detected location corresponding to the same external object; continuously generating a respective reported location based on the coefficient and the detected location of each external object, wherein the smaller the coefficient, the closer the reported location is to the detected location; and continuously generating a virtual reported location based on the coefficient and the respective virtual detected location of each external object, wherein the smaller the coefficient, the closer the virtual reported location is to the virtual detected location.
 5. The touch contact tracking method of claim 4, wherein the reported location of each external object is generated based on a latest reported location and the latest detected location.
 6. The tracking method of claim 5, wherein reported location=(latest reported location×(1−coefficient)+latest detected location×coefficient)
 7. The touch contact tracking method of claim 4, wherein the virtual reported location of each external object is generated based on a latest virtual reported location and a latest virtual detected location.
 8. The touch contact tracking method of claim 7, wherein reported location=(latest virtual reported location×(1−coefficient)+latest virtual detected location×coefficient)
 9. The touch contact tracking method of claim 4, further comprising: continuously providing a latest virtual reported location corresponding to each external object; and continuously providing a latest reported location corresponding to each external object, wherein the latest virtual reported location corresponding to each external object is provided before the latest reported location corresponding to each external object. 